package com.ruoyi.standingbook.v2toilet.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.standingbook.v2toilet.MapBean;
import com.ruoyi.standingbook.v2toilet.domain.bo.V2ToiletBo;
import com.ruoyi.standingbook.v2toilet.domain.vo.V2ToiletImpDetailVo;
import com.ruoyi.standingbook.v2toilet.domain.vo.V2ToiletVo;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * V2市政公厕管养Service接口
 *
 * @author cc
 * @date 2023-06-07
 */
public interface IToiletService {

    /**
     * 查询V2市政公厕管养
     */
    V2ToiletVo queryById(String id);

    /**
     * 查询V2市政公厕管养列表
     */
    TableDataInfo<V2ToiletVo> queryPageList(V2ToiletBo bo, PageQuery pageQuery);

    /**
     * 查询V2市政公厕管养列表
     */
    List<V2ToiletVo> queryList(V2ToiletBo bo);

    /**
     * 新增V2市政公厕管养
     */
    Boolean insertByBo(V2ToiletBo bo);

    /**
     * 修改V2市政公厕管养
     */
    Boolean updateByBo(V2ToiletBo bo);

    /**
     * 校验并批量删除V2市政公厕管养信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    boolean batchInsertOrUpdate(List<V2ToiletImpDetailVo> detailVo);

    List<String> listChanged(Map<String, Object> map);

    List<V2ToiletVo> reportDetail(V2ToiletBo bo);


    /**
     * 下拉选项（社区和公厕查询条件）
     *
     * @return value
     */
    Map<String, List<MapBean<String>>> selectCondition();
    //
    //    List<V2ToiletVo> monthReport(V2ToiletBo bo);

    /**
     * 查询V2市政公厕管养列表
     */
    List<V2ToiletVo> queryListByDate(String date);
}
